
package com.tyk.bookstore.back.payment.service;

import com.tyk.bookstore.back.payment.manager.excel.model.PaymentRecordExcelVo;
import com.tyk.bookstore.back.payment.model.query.PaymentRecordAddQuery;
import com.tyk.bookstore.back.payment.model.query.PaymentRecordPageQuery;
import com.tyk.bookstore.back.payment.model.query.PaymentRecordUpdateQuery;
import com.tyk.bookstore.back.payment.model.vo.PaymentRecordPageVo;
import com.tyk.bookstore.back.payment.model.vo.PaymentRecordVo;

import java.util.List;
import java.util.Set;

/**
 * @author tyk
 * @description 支付记录
 */
public interface PaymentRecordService {

    /**
     * 根据支付记录ID获取支付记录详情
     *
     * @param id 支付记录ID
     * @return 支付记录详情
     */
    PaymentRecordVo getById(Long id);

    /**
     * 分页查询支付记录
     *
     * @param query 查询参数
     * @return 支付记录列表
     */
    PaymentRecordPageVo getPage(PaymentRecordPageQuery query);

    /**
     * 添加支付记录
     *
     * @param query 支付记录信息
     */
    void add(PaymentRecordAddQuery query);

    /**
     * 更新支付记录
     *
     * @param query 支付记录信息
     */
    void updateById(PaymentRecordUpdateQuery query);

    /**
     * 根据ID删除支付记录
     *
     * @param id 支付记录ID
     */
    void deleteById(Long id);

    /**
     * 根据ID批量删除支付记录
     *
     * @param idSet 支付记录ID集合
     */
    void deleteBatchByIdSet(Set<Long> idSet);

    /**
     * 获取Excel导出数据
     *
     * @param query 同分页查询参数
     * @return Excel导出数据
     */
    List<PaymentRecordExcelVo> getPaymentRecordExcelVoList(PaymentRecordPageQuery query);
}

